﻿/* *****************************************************************************
 * @ Encoding: UTF-8
 * @ File Name: naughty_differential_node_num.hpp
 * @ Author: carl
 * @ Email: naughtygeng@qq.com
 * @ Created Time: 2022-7月-06(星期三) 21:22:41
 * @ All Rights Reserved
 * *****************************************************************************/

#ifndef NAUGHTY_DIFFERENTIAL_NODE_NUM_HPP
#define NAUGHTY_DIFFERENTIAL_NODE_NUM_HPP

#include "naughty_differential_node_base.hpp"

namespace naughty_differential
{

class node_num : public node_base
{

private:

    double m_number;

public:

    node_num(double number);

	std::shared_ptr<node_base> differential(std::string variable /* = 'x' */ ) override;

	enum node_type get_node_type() override;

	std::string serialize() override;

    std::string to_string() const override;

    std::shared_ptr<node_base> clone() override;

	double get_value(std::map<std::string, double> val_value_map) override;

    std::string identity_string() const override;
};

}

#endif
